#pragma once

#include <QObject>

class SignalsBus  : public QObject
{
	Q_OBJECT

public:
	static SignalsBus* getInstance()
	{
		static SignalsBus* instance = new SignalsBus();
		return instance;
	}

signals:

	void onLoadProject();

    void onLoadSingleImage(const QString& image);
    void loadImageFolder(const QStringList& imageNames);
    void onLoadImageDictionary(const QString& dictionary);
    void onChangeDisplayMode(int mode);

    void onSingleImageChecked();

    void fovClicked(int roiRow,int roiCol,int fovRow,int fovCol);
    void roiClicked(int roiRow,int roiCol,int fovRow,int fovCol);

    void mappingUpdated();
    void scanCompleted();
    void parametersChanged();

    void multipleCheckEnd();

    void resultMapClicked(int cursor);

    void checkPercent(int cursor);
    void switchStatus(int status);

private:
    SignalsBus(QObject* parent = nullptr) {Q_UNUSED(parent);}
	~SignalsBus() = default;
};

